import config from './config';

let filters = {
  formatData: (value, fmt) => {
    if (!value) {
      return '';
    }
    const getDate = new Date(value);
    let o = {
      'M+': getDate.getMonth() + 1,
      'd+': getDate.getDate(),
      'h+': getDate.getHours(),
      'm+': getDate.getMinutes(),
      's+': getDate.getSeconds(),
      'q+': Math.floor((getDate.getMonth() + 3) / 3),
      'S': getDate.getMilliseconds()
    };
    if (/(y+)/.test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (let k in o) {
      if (new RegExp('(' + k + ')').test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
      }
    }
    return fmt;
  },
  Money: (value) => {
    if (!value) return '0.00';
    return parseFloat(value / 100)
      .toFixed(2);
  },
  getValueByArray: (ids, arr) => {
    if (!ids) {
      return;
    }
    const idsArray = String(ids)
      .split(',')
      .map(item => {
        return arr.filter(val => val.id === item)[0];
      });
    return idsArray.map(item => {
      return item.title;
    })
      .join(' ');
  },
  Null: (val) => {
    if (!val) {
      return '-'
    } else {
      return val
    }
  },
  getJobMoney: function (val) {
    if (!val.endMoney) {
      return '面议'
    } else {
      return val.startMoney + 'K-' + val.endMoney + 'K'
    }
  },
  getWorkTime: function (val) {
    return parseInt(val / 12)
  },
  orderNum: function (val) {
    if (val == 0) {
      return "若干人"
    } else if (val > 0) {
      return val
    } else {
      return '-'
    }
  },
  // 通过省市区ID，获取城市名称
  cityIdToName: (val) => {
    if (!val) {
      return
    }
    return config.CityList.filter(i => {
      return i.id == val
    })[0].title
    // const ProList = config.CityList.filter(i => {
    //   return i.id.toString().slice(0, 2) === val.toString().slice(0, 2)
    // })
    // if (ProList.length > 0 && ProList[0].id == val) {
    //   return ProList[0].name
    // }
    //
    // if (ProList.length > 0 && ProList[0].id !== val) {
    //   const CityList = ProList[0].son.filter(i => {
    //     return i.id.toString().slice(0, 4) === val.toString().slice(0, 4)
    //   })
    //   if (CityList.length > 0 && CityList[0].id == val) {
    //     return CityList[0].name
    //   }
    //
    //   if (CityList.length > 0 && CityList[0].id !== val) {
    //     const areaList = CityList[0].son.filter(i => {
    //       return i.id.toString() === val.toString()
    //     })
    //
    //
    //     if (areaList.length > 0 && areaList[0].id == val) {
    //       return areaList[0].name
    //     }
    //
    //   }
    // }
  },
}


/**
 * 统一将config中的状态值转化为filter过滤器可用的方法
 * @type {{}}
 */
let transFilter = {}

config.ToFilterList.map((item) => {
  transFilter[`${item}ToLabel`] = function (val) {
    const value = val ? val : 0
    const filterResult = config[item].filter(i => {
      return i.id == value
    })
    if (filterResult.length > 0) {
      return filterResult[0].title
    } else {
      return value
    }
  }
})

Object.assign(filters, transFilter)

export default {
  filters: filters
};
